Method of deblocking for intra block copy in video coding

ABSTRACT

A method and apparatus for applying deblocking filter to block boundaries in a video coding system including an IntraBC (Intra-block copy) mode are disclosed. According to the present invention, for at least one combination of the two neighboring reconstructed blocks including at least one IntraBC coded block in the two neighboring reconstructed blocks, a boundary filter strength equal to one or zero is selected based on coding parameters associated with the two neighboring reconstructed blocks. Deblocking filter is then applied to neighboring samples of the two neighboring reconstructed blocks around the block boundary using the boundary filter strength selected. For example, when the two neighboring reconstructed blocks correspond to one IntraBC coded block and one Inter coded block, the boundary filter strength is set to one.

CROSS REFERENCE TO RELATED APPLICATIONS

The present invention claims priority to U.S. Provisional PatentApplication, Ser. No. 62/050,258, filed on Sep. 15, 2014. The U.S.Provisional Patent Application is hereby incorporated by reference inits entirety.

FIELD OF THE INVENTION

The present invention relates to video coding using coding modesincluding Intra-block copy (IntraBC). In particular, the presentinvention relates to deblocking filter to improve the visual quality byalleviating artifacts around block boundaries for a video coding systemincluding the IntraBC mode.

BACKGROUND AND RELATED ART

High Efficiency Video Coding (HEVC) is a new coding standard that hasbeen developed in recent years. In the High Efficiency Video Coding(HEVC) system, the fixed-size macroblock of H.264/AVC is replaced by aflexible block, named coding unit (CU). Pixels in the CU share the samecoding parameters to improve coding efficiency. A CU may begin with alargest CU (LCU), which is also referred as coded tree unit (CTU) inHEVC. In addition to the concept of coding unit, the concept ofprediction unit (PU) is also introduced in HEVC. Once the splitting ofCU hierarchical tree is done, each leaf CU is further split into one ormore prediction units (PUs) according to prediction type and PUpartition. Several coding tools for screen content coding have beendeveloped. These tools related to the present invention are brieflyreviewed as follow.

FIG. 1A illustrates an exemplary adaptive Inter/Intra video codingsystem incorporating in-loop processing according to HEVC. ForInter-prediction, Motion Estimation (ME)/Motion Compensation (MC) 112 isused to provide prediction data based on video data from other pictureor pictures. Switch 114 selects Intra Prediction 110 or Inter-predictiondata and the selected prediction data is supplied to Adder 116 to formprediction errors, also called residues. The prediction error is thenprocessed by Transformation (T) 118 followed by Quantization (Q) 120.The transformed and quantized residues are then coded by Entropy Encoder122 to form a video bitstream corresponding to the compressed videodata. The bitstream associated with the transform coefficients is thenpacked with side information such as motion, mode, and other informationassociated with the image area. The side information may also be subjectto entropy coding to reduce required bandwidth. Accordingly, the dataassociated with the side information are provided to Entropy Encoder 122as shown in FIG. 1A. When an Inter-prediction mode is used, a referencepicture or pictures have to be reconstructed at the encoder end as well.Consequently, the transformed and quantized residues are processed byInverse Quantization (IQ) 124 and Inverse Transformation (IT) 126 torecover the residues. The residues are then added back to predictiondata 136 at Reconstruction (REC) 128 to reconstruct video data. Thereconstructed video data may be stored in Reference Picture Buffer 134and used for prediction of other frames.

As shown in FIG. 1A, incoming video data undergoes a series ofprocessing in the encoding system. The reconstructed video data from REC128 may be subject to various impairments due to a series of processing.Accordingly, various in-loop processing is applied to the reconstructedvideo data to improve visual quality before the reconstructed video dataare stored in the Reference Picture Buffer 134 in order to improve videoquality. In the High Efficiency Video Coding (HEVC) standard beingdeveloped, Deblocking Filter (DF) 130 and Sample Adaptive Offset (SAO)131 have been developed to enhance picture quality. The in-loop filterinformation may have to be incorporated in the bitstream so that adecoder can properly recover the required information. Therefore,in-loop filter information from SAO is provided to Entropy Encoder 122for incorporation into the bitstream. In FIG. 1A, DF 130 is applied tothe reconstructed video first and SAO 131 is then applied toDF-processed video. However, the processing order among DF and SAO canbe re-arranged.

A corresponding decoder for the encoder of FIG. 1A is shown in FIG. 1B.The video bitstream is decoded by Entropy Decoder 142 to recover thetransformed and quantized residues, SAO information and other systeminformation. At the decoder side, only Motion Compensation (MC) 113 isperformed instead of ME/MC. The decoding process is similar to thereconstruction loop at the encoder side. The recovered transformed andquantized residues, SAO information and other system information areused to reconstruct the video data. The reconstructed video is furtherprocessed by DF 130 and SAO 131 to produce the final enhanced decodedvideo.

The coding process in HEVC encodes or decodes a picture using a blockstructure named Largest Coding Unit (LCU). The LCU is adaptivelypartitioned into coding units (CUs) using quadtree. In each leaf CU, DFis performed for each 8×8 block and in HEVC, the DF is applied to 8×8block boundaries. For each 8×8 block, horizontal filtering acrossvertical block boundaries (also called vertical edges) is first applied,and then vertical filtering across horizontal block boundaries (alsocalled horizontal edges) is applied. During processing of a luma blockboundary, four pixels on each side of the boundary are involved infilter parameter derivation, and up to three pixels on each side of theboundary may be changed after filtering.

FIG. 2 illustrates the pixels involved in the DF process for a verticaledge 210 between two blocks, where each smallest square represents onepixel. The pixels on the left side (i.e., pixel columns p0 to p3 asindicated by 220) of the edge are from one 8×8 reconstructed block, andthe pixels on the right side (i.e., pixel columns q0 to q3 as indicatedby 230) of the edge are from another 8×8 reconstructed block. In the DFprocess according to HEVC, the coding information of the two 8×8 blocksis used to calculate the boundary filter strength (also referred to asBS or boundary strength) of the edge first. After the boundary filterstrength is determined, columns p0-p3 and q0-q3 of the reconstructedpixels are used to derive filter parameters including filter on/offdecision and strong/weak filter selection.

FIG. 3 illustrates the boundary pixels involved in the DF process for ahorizontal edge 310, where each smallest square represents one pixel.The pixels on the upper side (i.e., pixel rows p0 to p3 as indicated by320) of the edge are from one 8×8 reconstructed block, and the pixels onthe lower side (i.e., pixel rows q0 to q3 as indicated by 330) of theedge are from another 8×8 reconstructed block. The DF process for thehorizontal edge is similar to the DF process for the vertical edge.

According to HEVC, three levels (i.e., 2, 1 and 0) of boundary filterstrength may be used. For a strong boundary (i.e., more visibleboundary), a stronger deblocking filter is used to cause smootherboundary. A stronger DF is indicated by BS=2 and a weaker DF isindicated by BS=1. When BS is equal to 0, it indicates no deblockingfilter.

Currently, extensions of HEVC (High Efficiency Video Coding) are beingdeveloped, including screen content coding (SCC) and 3D extensions. Thescreen content coding targets at coding screen captured content, withnon-4:2:0 color formats, such as 4:2:2 and 4:4:4, and video data withhigher bit-depths such as 12, 14 and 16 bit-per-sample while the 3Dextension targets at the coding of multi-view video with depth data.

During the Course of SCC development, various video coding tools havebeen described, including the “Intra picture block copy” (IntraBC)technique. The IntraBC technique was first disclosed in JCTVC-M0350(Budagavi et al., AHG8: Video coding using Intra motion compensation,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 andISO/IEC JTC 1/SC 29/WG11 13th Meeting: Incheon, KR, 18-26 Apr. 2013,Document: JCTVC-M0350). An example according to JCTVC-M0350 is shown inFIG. 4, where a current coding unit (CU, 410) is coded using Intra MC(motion compensation). The prediction block (420) is located from thecurrent CU and a displacement vector (412). In this example, the searcharea is limited to the current CTU (coding tree unit), the left CTU andthe left-left CTU. The prediction block is obtained from the alreadyreconstructed region. Then, the displacement vector, also named motionvector (MV) or block vector (BV), and residual for the current CU arecoded. It is well known that the HEVC adopts CTU and CU block structureas basic units for coding video data. Each picture is divided into CTUsand each CTU is reclusively divided into CUs. During prediction phase,each CU may be divided into multiple blocks, named prediction units(PUs) for performing prediction process.

Modifications based on JCTVC-M0350 is disclosed in JCTVC-N0256 (Pang etal., Non-RCE3: Intra Motion Compensation with 2-D MVs, JointCollaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 andISO/IEC JTC 1/SC 29/WG11 14th Meeting: Vienna, AT, 25 Jul.-2 Aug. 2013,Document: JCTVC-N0256) to allow both horizontal and vertical BVcomponents be non-zero. Furthermore, BV coding methods are disclosed inJCTVC-N0256. One method uses the left or above BV as the BV predictorand codes the resulting BVD (BV differences). A flag is signaled firstto indicate whether the BVD is zero. When BVD is not zero, anexponential-Golomb of 3^(rd) order code is used to encode the remainingabsolute level of the BVD. The sign of BVD is coded using a flag.According to another method, no predictor is used and the BV is codedusing the exponential-Golomb codes used for BVD coding in HEVC.

JCTVC-N0256 also discloses some pipeline friendly approaches. Forexample, no interpolation filters are used. Furthermore, the BV searcharea is restricted. In one example, the search area is restricted to thecurrent CTU and the left CTU. In another example, the search area isrestricted to the current CTU and the rightmost 4 columns of the leftCTU.

In SCM-2.0 (Joshi et al., Screen content coding test model 2 (SCM 2),Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP3 andISO/IEC JTC 1/SC29/WG11, 18th Meeting: Sapporo, JP, 30 Jun.-9 Jul. 2014,Document: JCTVC-R1014), the block vector (BV) coding is modified to usethe neighboring BVs and coded BVs as BV predictor (BVP) according toJCTVC-R0309 (Pang, et al., Non-SCCEL: Combination of JCTVC-R0185 andJCTVC-R0203, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-TSG 16 WP3 and ISO/IEC JTC 1/SC29/WG11, 18th Meeting: Sapporo, JP, 30Jun.-9 Jul. 2014, Document: JCTVC-R0309). The BV predictor is derivedsimilar to the AMVP scheme in HEVC. The predictor candidate list isconstructed by first accessing in order the spatial neighboring blocksa1 and b1 as shown in FIG. 5. If any of the spatial neighbors does nothave a block vector, the last 2 coded BVs, which are initialized with(−2*CU_width, 0) and (−CU_width, 0), are used to fill into the blockvector candidate list to make it contain two different entries. To avoidthe need for the line buffer, the above BV outside the current CTU isconsidered unavailable. The last two coded BVs are reset to (0, 0) foreach CTU to prevent the data dependency.

Currently, the BV for IntraBC coded block is at integer accuracy, whichis different from MV for Inter coded block, which is at quarter-pelaccuracy.

According to SCM-2.0, deblocking filter process will be executed alongblock boundaries after the reconstruction process similar to theconventional HEVC. A boundary filter strength (BS) will decide whetherstrong filtering, weak filtering or no filtering should be applied to aboundary. In HEVC, if an edge needs deblocking filter, different blockboundary filtering strengths (BS) are assigned to block boundaries withdifferent properties. In summary, the following BS decision process isapplied:

-   -   Step 1. Test 1 corresponding to whether any block on a side of        the block boundary is Intra coded is performed. If the result is        asserted (i.e., result=yes), BS is assigned a value equal to 2        and the BS decision process is terminated. Otherwise, the BS        decision process goes to step 2.    -   Step 2. Test 2 corresponding to whether the block boundary is        also a transform block edge and at least one block on a side of        the block boundary has non-zero coefficients is performed. If        the result is asserted (i.e., result=yes), BS is assigned a        value equal to 1 and the BS decision process is terminated.        Otherwise, the BS decision process goes to step 3.    -   Step 3. Test 3 on coding parameters related to the two blocks on        two sides of the block boundary is performed. BS is assigned a        value equal to 1 or 0 based on the test 3 result. Coding        parameters such as RefList (reference picture list, also        referred to as reference list), RefIdx (reference picture index,        also referred to as reference index), the number of MVs used,        and MV differences of both sides may be used for test 3. For        example, when two blocks refer to the same picture and the        difference between two MVs are smaller than one integer pixel        (either component), BS is set to 0. Otherwise BS is set to 1.

For a boundary edge in the case when an IntraBC coded block at one sideof the block boundary is involved, the deblocking filter BS decisionaccording to the current HEVC practice treats the IntraBC coded block asan Intra coded block. Accordingly, the BS for the related edges isassigned a value equal to 2 for the deblocking filter operation if anyof the two blocks next to the block boundary is IntraBC coded.

According to the current deblocking filter practice involved withIntraBC coded blocks, the filtering process treats the IntraBC codedblock in a way similar to Intra block. Therefore, it may not result indesirable visual quality when IntraBC coded blocks are involved.Accordingly, it is desirable to develop deblocking filter process forblock boundary associated with IntraBC coded blocks to improve visualquality.

BRIEF SUMMARY OF THE INVENTION

A method and apparatus for applying deblocking filter to blockboundaries in a video coding system including an IntraBC (Intra-blockcopy) mode are disclosed. According to the present invention, for atleast one combination of the two neighboring reconstructed blocksincluding at least one IntraBC coded block in the two neighboringreconstructed blocks, a boundary filter strength equal to one or zero isselected based on coding parameters associated with the two neighboringreconstructed blocks. Deblocking filter is then applied to neighboringsamples of the two neighboring reconstructed blocks around the blockboundary using the boundary filter strength selected.

In one embodiment, when the IntraBC coded block is signaled using areference picture index value and the two neighboring reconstructedblocks correspond to one IntraBC coded block and one Inter coded block,if the block boundary is also a transform block edge and at least one ofthe two neighboring reconstructed block has one or more non-zerocoefficients, the boundary filter strength is set to one. If the blockboundary is not a transform block edge or none of the two neighboringreconstructed block has non-zero coefficients, the boundary filterstrength is set to one or zero according to factors selected from acoding-parameter group comprising the reference picture list (RefList),the reference picture index (RefIdx), the number of motion vectors used,and motion vector difference associated with the two neighboringreconstructed blocks.

In another embodiment, when the IntraBC coded block is signaled using areference picture index value and the two neighboring reconstructedblocks correspond to two IntraBC coded blocks, if the block boundary isalso one transform block edge and at least one of the two neighboringreconstructed block has one or more non-zero coefficients, the boundaryfilter strength is set to one. If the block boundary is not onetransform block edge or none of the two neighboring reconstructed blockhas non-zero coefficients, the boundary filter strength is set to one orzero according to one or more factors selected from a coding-parametergroup comprising RefList, RefIdx, a number of motion vectors used, andmotion vector difference associated with the two neighboringreconstructed blocks.

In yet another embodiment, when each IntraBC coded block is signaledusing a reference picture index value and the two neighboringreconstructed blocks correspond to one IntraBC coded block and one Intercoded block, a specific reference picture index is assigned to theIntraBC coded block. The current picture is used as a reference picturefor the IntraBC coded block. The current picture is assigned to areference picture list corresponding to L0, L1, or a separate referencepicture list different from L0 and L1. The specific reference pictureindex corresponds to a value not used by regular Inter referencepictures in a current slice header. The specific reference picture indexmay correspond to −1 or a total number of reference picture indices inreference picture list L0 or L1.

According to another embodiment, when each IntraBC coded block issignaled using a reference picture index value and the two neighboringreconstructed blocks correspond to two IntraBC coded blocks, a samespecific reference picture list and a same specific reference pictureindex are assigned to these two IntraBC coded blocks.

In the case of IntraBC signaling based on using an IntraBC flag, if thetwo neighboring reconstructed blocks correspond to one IntraBC codedblock and one Inter coded block, the boundary filter strength is set toone. If the two neighboring reconstructed blocks correspond to twoIntraBC coded blocks, the boundary filter strength is set to one if adifference between two block vectors associated with the two IntraBCcoded blocks is greater than or equal to a threshold and the boundaryfilter strength is set to zero otherwise. The threshold may correspondto one, two or four.

In one embodiment, if any of the two neighboring reconstructed blocksrefers to a compensation block from another picture, any of the twoneighboring reconstructed blocks is considered as an Inter coded blockwith regard to the selection of the boundary filter strength.

In another embodiment, if a boundary block is IntraBC coded block, theblock vector of the IntraBC coded block is converted to quarter-sampleaccuracy with regard to selecting the boundary filter strength as one orzero based on one or two coding parameters. For example, the blockvector of the IntraBC coded block can be converted to the quarter-sampleaccuracy by left-shifting the block vector by two.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A illustrates an exemplary adaptive inter/intra video encodingsystem according to the high efficiency video coding (HEVC) standardincorporating DF and SAO in-loop processing.

FIG. 1B illustrates an exemplary adaptive inter/intra video decodingsystem according to the high efficiency video coding (HEVC) standardincorporating DF and SAO in-loop processing.

FIG. 2 illustrates an example of a vertical block edge between two 8×8blocks for deblocking filter.

FIG. 3 illustrates an example of a horizontal edge between two 8×8blocks for deblocking filter.

FIG. 4 illustrates an example of Intra motion compensation according tothe Intra-block copy (IntraBC) mode, where a horizontal displacementvector is used.

FIG. 5 illustrates an example of neighboring blocks for motion vectorprediction according to the advanced motion vector prediction (AMVP)mode of HEVC.

FIG. 6 illustrates an exemplary flowchart for a coding system includingan Intra Block Copy (IntraBC) mode, wherein the system uses boundaryfilter strength derivation incorporating an embodiment of the presentinvention.

DETAILED DESCRIPTION OF THE INVENTION

The following description is of the best-contemplated mode of carryingout the invention. This description is made for the purpose ofillustrating the general principles of the invention and should not betaken in a limiting sense. The scope of the invention is best determinedby reference to the appended claims.

According to embodiments of the present invention, an IntraBC codedblock is treated as a non-Intra mode during the deblocking filteringprocess while a reconstructed block refers to a compensation block froma picture different from the current picture is treated as an Intercoded block. The block vector (BV) of current IntraBC coded block willbe used, along with other coding parameters, to decide whether theboundary filter strength (BS) is assigned a value equal to 1 or 0.

For the IntraBC signaling, there are two approaches being practiced:ref_idx approach and ibc_flag approach. According to the ref_idxapproach, the current picture is treated as a reference picture forIntraBC coded block, and specific RefList and ref_idx values will beassigned to this IntraBC coded block. According to the ibc_flagapproach, the IntraBC coded block is signaled by a flag, referred asibc_flag or intra_bc_flag. Please note, a slice is a video structureused for video coding, where a picture is divided into multiple slicesand each slice is allowed to use a set of coding parameters specific forthe slice. Also, coding information specific to the current slice may besignaled in the slice header so that the slice specific codinginformation can be recovered at the decoder side. For each of the twoIntraBC signaling approaches (i.e., ref_idx and ibc_flag), there arethree cases to be considered for boundary filter strength decision fordeblocking filter of the boundary edge involved with at least oneIntraBC coded block.

IntraBC Signaling Based on the Ref_Idx Approach

Case 1. One block next to the block boundary is Intra coded and theother block is IntraBC coded. The BS will be assigned a value equal to 2for this boundary edge.

Case 2. One block next to the block boundary is Inter coded and theother block is IntraBC coded. According to an embodiment of the presentinvention, the current picture containing the IntraBC coded block istreated as the reference picture for the IntraBC coded block. Thereference picture (i.e., the current picture) is placed into a specificreference picture list, RefList. A specific reference picture indexvalue, ref_idx will be assigned to this IntraBC coded block so thatthese parameters can be used during the deblocking process. For example,the current picture can be assigned to reference picture list 0 (L0) andthe reference picture index, ref_idx is determined according to:

ref_idx=num_ref_idx_10_active_minus1+1,  (1)

where num_ref_idx_10_active_minus1 is a slice header syntax indicatingthe number of reference pictures in L0 for the current slice.

Regular Inter reference pictures will have their ref_idx ranging from 0to num_ref_idx_10_active_minus1, inclusively. In general, any ref_idxnot used by regular Inter reference pictures, such as ref_idx=−1 (or atotal number of reference picture indices in reference picture list L0)can be assigned to the IntraBC coded block. The step 2 and step 3 of theBS decision process as mentioned previously can be applied to determinethe BS value.

In another example, the current picture is assigned to reference picturelist 1 (i.e., L1) and reference picture index ref_idx is determinedaccording to:

ref_idx=num_ref_idx_I1_active_minus1+1,  (2)

where num_ref_idx_I1_active_minus1 is a slice header syntax indicatingthe number of reference pictures in L1 for the current slice. RegularInter reference pictures will have their ref_idx ranging from 0 tonum_ref_idx_I1_active_minus1, inclusively. In general, any ref_idx notused by regular Inter reference pictures, such as ref_idx=−1 (or a totalnumber of reference picture indices in reference picture list L1) can beassigned to the IntraBC coded block. The step 2 and step 3 of the BSdecision process as mentioned previously can be applied to determine theBS value.

In yet another embodiment, the current picture is assigned a thirdreference picture list (e.g. L2) different from L0 and L. An arbitraryref_idx value (such as 0 or −1) can be assigned to this IntraBC codedblock. The step 2 and step 3 of the BS decision process as mentionedpreviously can be applied to determine the BS value. In one embodiment,if step 3 of the BS decision process is applied, the BS for the relatedboundary edges will be assigned a value equal to 1 since the referencepictures for the Inter coded block and IntraBC coded block aredifferent.

Case 3. Both blocks at the block boundary are IntraBC coded. Similar toCase 2, both blocks will be assigned a specific RefList value andref_idx value so that these parameters can be used during the Interdeblocking process. In this case, the RefList and ref_idx for both ofblocks should be the same. The step 2 and step 3 of the BS decisionprocess as mentioned previously can be applied to determine the BSvalue. In one embodiment, if step 3 of the BS decision process isapplied, the BS for the related boundary edges will be assigned a valueequal to one or zero based on at least one of the following factors: areference picture list (RefList), a reference picture index (RefIdx), anumber of BVs used, and BV difference associated with the twoneighboring IntraBC coded block. For example, when the two neighboringIntraBC coded blocks refer to the same reference picture and the two BVsassociated with the two neighboring IntraBC coded blocks are the same,the BS is set to 0. Otherwise BS is set to 1.

IntraBC Signaled Based on the Ibc_Flag Approach

Case 1. One block at the block boundary is Intra coded and the otherblock is IntraBC coded. The BS will be assigned a value equal to 2 forthis boundary edge.

Case 2. One block at the block boundary is Inter coded and the otherblock is IntraBC coded. The BS will be assigned a value equal to 1 forthis boundary edge.

Case 3. Both blocks at the block boundary are IntraBC coded. Two BVs ofthese two blocks are referred as BV0 and BV1. If the absolute differencebetween the horizontal or vertical component of BV0 and BV1 is greaterthan or equal to N, the BS will be assigned a value equal to 1 for thisboundary edge. Otherwise, the BS will be assigned a value equal to 0 forthis boundary edge. N can be 1, 2, 4 or other integer numbers.

IntraBC BV Shift

In HEVC, the MV for the luma component has quarter sample accuracy forInter coded blocks. On the other hand, the BV for the IntraBC codedblock has integer accuracy. According to one embodiment of the presentinvention, the BV for an IntraBC coded block is converted to have thesame accuracy as the MV for the luma component. For example, BV can beleft shifted by two during the deblocking filter process. Therefore, theleft-shifted BV will have the same precision as the MV of an Inter codedblock.

The performance of a system incorporating an embodiment of the presentinvention is compared to an anchor system based of SCM-3.0 software(Screen Content Coding Test Model version 3.0). The system incorporatingan embodiment of the present invention uses IntraBC signaling based onthe ref_idx approach and the BS decision process is described in case 1through case 3 associated with IntraBC signaling based on the ref_idxapproach. On the other hand, the system based on SCM-3.0 treated anyIntraBC coded block next to the block boundary as an Intra block. Thetest is conducted for various test video materials. The performance iscompared based on BD-Rate, where the BD-Rate is a well-known performancemeasure in the field of video coding. Performance comparison isperformed for various configurations including all Intra, random Accessand Low-Delay B-picture. Based on the comparison, the systemincorporating an embodiment of the present achieves RD-Rate reduction upto 1.3% for the all Intra configuration, up to 1.9% for the RandomAccess configuration and up to 2.9% for the Low-Delay B-picturesconfiguration.

FIG. 6 illustrates an exemplary flowchart for a coding system includingan Intra Block Copy (IntraBC) mode, wherein the system uses boundaryfilter strength derivation incorporating an embodiment of the presentinvention. The system receives input data for two neighboringreconstructed blocks of a current picture having a block boundarybetween the two neighboring reconstructed blocks as shown in step 610.The input data includes reconstructed data for the two neighboringblocks to be filtered by deblocking filter. The input data may alsoinclude coding parameters associated with the two neighboring blocks atboth sides of the block boundary. For encoding, the coding parametersmay also be derived at the encoder side. For decoding, the codingparameters may be parsed from the bitstream received by the decoder. Theinput data may be retrieved from memory (e.g. computer memory, buffer(RAM or DRAM) or other media) or from a processor. One or more codingparameters associated with the two neighboring reconstructed blocks aredetermined in step 620. In step 630, “if at least one neighboringreconstructed block is IntraBC coded” is tested. If the result is “Yes”,the step 640 and step 650 are performed. If the result is “No”, the step640 and step 650 are skipped and in this case, the BS decision processaccording to the conventional HEVC (e.g., SCM-3.0) may be used.

The flowchart shown above is intended to illustrate an example ofIntraBC coding according to the present invention. A person skilled inthe art may modify each step, re-arranges the steps, split a step, orcombine steps to practice the present invention without departing fromthe spirit of the present invention.

The above description is presented to enable a person of ordinary skillin the art to practice the present invention as provided in the contextof a particular application and its requirement. Various modificationsto the described embodiments will be apparent to those with skill in theart, and the general principles defined herein may be applied to otherembodiments. Therefore, the present invention is not intended to belimited to the particular embodiments shown and described, but is to beaccorded the widest scope consistent with the principles and novelfeatures herein disclosed. In the above detailed description, variousspecific details are illustrated in order to provide a thoroughunderstanding of the present invention. Nevertheless, it will beunderstood by those skilled in the art that the present invention may bepracticed.

Embodiment of the present invention as described above may beimplemented in various hardware, software codes, or a combination ofboth. For example, an embodiment of the present invention can be one ormore electronic circuits integrated into a video compression chip orprogram code integrated into video compression software to perform theprocessing described herein. An embodiment of the present invention mayalso be program code to be executed on a Digital Signal Processor (DSP)to perform the processing described herein. The invention may alsoinvolve a number of functions to be performed by a computer processor, adigital signal processor, a microprocessor, or field programmable gatearray (FPGA). These processors can be configured to perform particulartasks according to the invention, by executing machine-readable softwarecode or firmware code that defines the particular methods embodied bythe invention. The software code or firmware code may be developed indifferent programming languages and different formats or styles. Thesoftware code may also be compiled for different target platforms.However, different code formats, styles and languages of software codesand other means of configuring code to perform the tasks in accordancewith the invention will not depart from the spirit and scope of theinvention.

The invention may be embodied in other specific forms without departingfrom its spirit or essential characteristics. The described examples areto be considered in all respects only as illustrative and notrestrictive. The scope of the invention is therefore, indicated by theappended claims rather than by the foregoing description. All changeswhich come within the meaning and range of equivalency of the claims areto be embraced within their scope.

1. A method of applying a deblocking filter to block boundaries in avideo coding system, the method comprising: setting a boundary filterstrength for a block boundary between two neighboring reconstructedblocks of a current picture, including: in a case that one of the twoneighboring reconstructed blocks is coded according to an Intra-blockcopy (IntraBC) mode, determining whether a condition is met, thecondition including a combination of the block boundary corresponding toa transform block edge, and at least one of the two neighboringreconstructed blocks having a non-zero transform coefficient, when thecondition is determined to be met, setting a boundary filter strength toone, and when the condition is determined not to be met, setting theboundary filter strength to one or zero according to coding parametersof the two neighboring reconstructed blocks; and applying the deblockingfilter to neighboring samples of the two neighboring reconstructedblocks around the block boundary according to the set boundary filterstrength.
 2. The method of claim 1, wherein the setting the boundaryfilter strength when the condition is determined not to be met isperformed according to the coding parameters including a referencepicture list (RefList), a reference picture index (RefIdx), a number ofmotion vectors used, or a motion vector difference associated with thetwo neighboring reconstructed blocks.
 3. The method of claim 1, whereinthe setting the boundary filter strength when the condition isdetermined not to be met comprises setting the boundary filter strengthto one responsive to reference pictures of the two neighboringreconstructed blocks being determined as different.
 4. The method ofclaim 1, wherein the setting the boundary filter strength when thecondition is determined not to be met comprises setting the boundaryfilter strength to one responsive to the other one of the twoneighboring reconstructed blocks being coded according to an Interprediction mode.
 5. The method of claim 1, wherein the setting theboundary filter strength when the condition is determined not to be metcomprises, in a case that the two neighboring reconstructed blocks arecoded according to the IntraBC mode, setting the boundary filterstrength to one when a difference between two block vectors of the twoneighboring reconstructed blocks is greater than or equal to athreshold, and setting the boundary filter strength to zero when thedifference between the two block vectors of the two neighboringreconstructed blocks is less than the threshold.
 6. The method of claim5, wherein the threshold is one, two, or four.
 7. The method of claim 1,wherein the current picture is assigned to a reference picture listcorresponding to a reference picture list L0, a reference picture listL1, or a separate reference picture list different from the referencepicture list L0 and the reference picture list L1.
 8. The method ofclaim 1, wherein current picture is identified by a specific referencepicture index value that is not used by the Inter prediction mode. 9.The method of claim 8, wherein the specific reference picture indexvalue is −1 or a total number of reference picture indices in areference picture list L0 or a reference picture list L1.
 10. The methodof claim 1, wherein an IntraBC flag is signaled to indicate that the oneof the two neighboring reconstructed blocks is coded according to theIntraBC mode.
 11. The method of claim 1, further comprising: convertinga block vector of the one of the two neighboring reconstructed blocks toquarter-sample accuracy.
 12. An apparatus for applying a deblockingfilter to block boundaries in a video coding system, the apparatuscomprising: processing circuitry configured to: set a boundary filterstrength for a block boundary between two neighboring reconstructedblocks of a current picture, including: in a case that one of the twoneighboring reconstructed blocks is coded according to an Intra-blockcopy (IntraBC) mode, determining whether a condition is met, thecondition including a combination of the block boundary corresponding toa transform block edge, and at least one of the two neighboringreconstructed blocks having a non-zero transform coefficient, when thecondition is determined to be met, setting a boundary filter strength toone, and when the condition is determined not to be met, setting theboundary filter strength to one or zero according to coding parametersof the two neighboring reconstructed blocks; and apply the deblockingfilter to neighboring samples of the two neighboring reconstructedblocks around the block boundary according to the set boundary filterstrength.
 13. The apparatus of claim 12, wherein the processingcircuitry is configured to set the boundary filter strength when thecondition is determined not to be met according to the coding parametersincluding a reference picture list (RefList), a reference picture index(RefIdx), a number of motion vectors used, or a motion vector differenceassociated with the two neighboring reconstructed blocks.
 14. Theapparatus of claim 12, wherein the processing circuitry is furtherconfigured to, when the condition is determined not to be met, set theboundary filter strength to one responsive to reference pictures of thetwo neighboring reconstructed blocks being determined as different. 15.The apparatus of claim 12, wherein the processing circuitry is furtherconfigured to, when the condition is determined not to be met, set theboundary filter strength to one responsive to the other one of the twoneighboring reconstructed blocks being coded according to an Interprediction mode.
 16. The apparatus of claim 12, wherein the processingcircuitry is further configured to: in a case that the two neighboringreconstructed blocks are coded according to the IntraBC mode, set theboundary filter strength to one when a difference between two blockvectors of the two neighboring reconstructed blocks is greater than orequal to a threshold, and set the boundary filter strength to zero whenthe difference between the two block vectors of the two neighboringreconstructed blocks is less than the threshold.
 17. The apparatus ofclaim 16, wherein the threshold is one, two, or four.
 18. Anon-transitory computer-readable medium storing software instructionswhich when executed by a computer cause the computer to perform aprocess comprising: setting a boundary filter strength for a blockboundary between two neighboring reconstructed blocks of a currentpicture, including: in a case that one of the two neighboringreconstructed blocks is coded according to an Intra-block copy (IntraBC)mode, determining whether a condition is met, the condition including acombination of the block boundary corresponding to a transform blockedge, and at least one of the two neighboring reconstructed blockshaving a non-zero transform coefficient, when the condition isdetermined to be met, setting a boundary filter strength to one, andwhen the condition is determined not to be met, setting the boundaryfilter strength to one or zero according to coding parameters of the twoneighboring reconstructed blocks; and applying the deblocking filter toneighboring samples of the two neighboring reconstructed blocks aroundthe block boundary according to the set boundary filter strength. 19.The non-transitory computer-readable medium of claim 18, wherein thesetting the boundary filter strength when the condition is determinednot to be met comprises setting the boundary filter strength to oneresponsive to the other one of the two neighboring reconstructed blocksbeing coded according to an Inter prediction mode.
 20. Thenon-transitory computer-readable medium of claim 18, wherein the settingthe boundary filter strength when the condition is determined not to bemet comprises, in a case that the two neighboring reconstructed blocksare coded according to the IntraBC mode, setting the boundary filterstrength to one when a difference between two block vectors of the twoneighboring reconstructed blocks is greater than or equal to athreshold, and setting the boundary filter strength to zero when thedifference between the two block vectors of the two neighboringreconstructed blocks is less than the threshold.